package com.mdjukebox.model.jukeboxfacade.actions;

import java.sql.Connection;
import java.sql.Timestamp;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.mdjukebox.model.dao.CancionDAO;
import com.mdjukebox.model.dao.PeticionDAO;
import com.mdjukebox.model.vo.CancionVO;
import com.util.exceptions.InternalErrorException;
import com.util.exceptions.ModelException;

import com.util.sql.TransactionalPlainAction;

/**
 * Dar por reproducidas todas las peticiones de la cancion.
 * 
 * */
public class BajaPeticionByCancionAction implements TransactionalPlainAction {
	private static Log log = LogFactory.getLog(BajaPeticionByCancionAction.class);
	
	private Timestamp ahora;
	private int idCancion;

	public BajaPeticionByCancionAction(int idCancion) {
		ahora = new Timestamp(System.currentTimeMillis());
		this.idCancion = idCancion;
	}

	public Object execute(Connection connection) throws ModelException, InternalErrorException {
		try{
			CancionDAO cdao = new CancionDAO(); 
			PeticionDAO pdao = new PeticionDAO(); 

			//FchRep de todas las peticiones = ahora
			pdao.updateFchRep(connection, ahora, idCancion);
			
			//fchUltRep de cancion = ahora
			//fchPrmPet de cancion = null
			CancionVO cancion = cdao.getCancionById(connection, idCancion);
			cancion.setFchUltRep(ahora);
			cancion.setFchPrmPet(null);
			cdao.updateCancion(connection, cancion);
			
		}catch (Exception e){
			throw new InternalErrorException(e);
		}
		
		return null;
	}
	
	

	
	
    
	    

}
